#define SOL_ALL_SAFETIES_ON 1
#include <sol/sol.hpp>

#include <iostream>
#include <type_traits>
#include <cstdint>

#ifndef __cplusplus
#include "stdlib.h"
#endif
#include "string.h"

#include "luaQt.h"

namespace LuaQt{
	void open_luaQPen(sol::table& module);
	void open_luaQString(sol::table& module);
	void open_luaQColor(sol::table& module);
	void open_luaQFont(sol::table& module);

	sol::table open_luaQtLua(sol::this_state L) {
		sol::state_view lua(L);
		sol::table module = lua.create_table();
		open_luaQPen(module);
		open_luaQString(module);
		open_luaQColor(module);
		open_luaQFont(module);
		return module;
	}

};

/*
TOLUA_API int  tolua_luaQPen_open (lua_State* tolua_S);
TOLUA_API int  tolua_luaQColor_open (lua_State* tolua_S);
TOLUA_API int  tolua_luaQString_open (lua_State* tolua_S);
TOLUA_API int  tolua_luaQFont_open (lua_State* tolua_S);
TOLUA_API int  tolua_luaQBrush_open (lua_State* tolua_S);
*/

extern "C" int luaopen_luaQt (lua_State* L)
{
	/*
	tolua_luaQPen_open(L);
	tolua_luaQString_open(L);
	tolua_luaQFont_open(L);
	tolua_luaQBrush_open(L);
	tolua_luaQColor_open(L);
	tolua_luaQPen_open(L);
	*/
	return sol::stack::call_lua(L, 1, LuaQt::open_luaQtLua );
}

